import java.util.ArrayList;
import java.util.Collections;

/**
 * Created with IntelliJ IDEA.
 * Description:  ArrayList 实操!一定得弄懂！
 * User: 杨已萱
 * Date: 2023-04-15
 * Time: 12:06
 */
public class Test {
    public static void main1(String[] args) {
        ArrayList<String> stringArrayList2 = new ArrayList<>();

        //添加元素用add()方法
        stringArrayList2.add("1添加元素到ArrayList可以使用 add() 方法");
        stringArrayList2.add("2可添加字符串1");
        stringArrayList2.add("3长度不受限制");
        stringArrayList2.add("4非常方便想加多少就加多少");
        stringArrayList2.add("55555");


        for (int i = 0; i < stringArrayList2.size(); i++) {
//            System.out.println( stringArrayList[i]);//? 原因：拿到元素需要get方法
            System.out.println(stringArrayList2.get(i));

        }
    }
    public static void main(String[] args) {
        ArrayList<String> stringArrayList = new ArrayList<>();

        //添加元素用add()方法
        stringArrayList.add("添加元素到ArrayList可以使用 add() 方法");
        stringArrayList.add("可添加字符串1");
        stringArrayList.add("长度不受限制");
        stringArrayList.add("非常方便想加多少就加多少");
        stringArrayList.add("5555");
        System.out.println(stringArrayList);
        System.out.println("==================================");

        //访问元素用 get() 方法
        String s = stringArrayList.get(0);//想起来要接受了很棒！
        String s1 = stringArrayList.get(2);//get()括号里填入数组下标可以访问该下标元素
        System.out.println(s);
        System.out.println(s1);
        System.out.println("==================================");

        //修改元素可以使用 set() 方法
        System.out.println("==================================");
        stringArrayList.set(2,"haha");//后面提示int dex,String element
        //意为将某某下标的值改为什么什么（根据ArrayList泛型的指定类型定义）
        System.out.println(stringArrayList.get(2));
        System.out.println("==================================");

        //删除元素用remove方法
        stringArrayList.remove(1);
        System.out.println(stringArrayList);
        System.out.println("==================================");

        //计算元素大小（长度）用size方法
        System.out.println(stringArrayList.size());
        System.out.println("==================================");
        System.out.println("**********************************");

        ArrayList<String> stringArrayList2 = new ArrayList<>();

        //添加元素用add()方法
        stringArrayList2.add("1添加元素到ArrayList可以使用 add() 方法");
        stringArrayList2.add("2可添加字符串1");
        stringArrayList2.add("3长度不受限制");
        stringArrayList2.add("4非常方便想加多少就加多少");
        stringArrayList2.add("1234");
//        Collections.sort(stringArrayList2);//这个大类叫Collections 有s！

        //遍历数组用for循环或者for each
        for (int i = 0; i < stringArrayList2.size(); i++) {
//            System.out.println( stringArrayList[i]);//? 原因：拿到元素需要get方法
            System.out.println(stringArrayList2.get(i));//什么意思啊为什么老师打印两个5555？
            //好像是吧for each写在了for循环里了！
            System.out.println("==================================");

            //or for each
            for (String j :stringArrayList2) {
                System.out.println(j);
            }
        }
        System.out.println("*********************************8");

        ArrayList<Integer> stringArrayList3 = new ArrayList<>();
        stringArrayList3.add(123);
        stringArrayList3.add(199);
        stringArrayList3.add(1);
        stringArrayList3.add(1453);
        stringArrayList3.add(99);
//        stringArrayList3.sort();  不是这方法里有sort 而是导入Collections包才有sort
//        括号里吧stringArrayList3扔进去！
        Collections.sort(stringArrayList3);
        for (int i = 0; i < stringArrayList3.size(); i++) {
//            System.out.println(stringArrayList3[i]);//又忘了?ArrayList拿到下标要用get()方法！
            System.out.println(stringArrayList3.get(i));//而且写 i 的时候不加[] 这样写：(i)
        }


    }
}
